package iyuwu.EasyTrade;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.inventory.*;
import org.bukkit.inventory.meta.ItemMeta;
import iyuwu.EasyTrade.EasyTrade;
import sun.plugin2.main.server.Plugin;
import sun.security.krb5.internal.ccache.CCacheInputStream;

import java.util.ArrayList;

public class SetGUI {
    public void setItemLore(ItemStack tmp,String loreName){//设置一个Item的lore
        ItemMeta im=tmp.hasItemMeta()?tmp.getItemMeta(): Bukkit.getItemFactory().getItemMeta(tmp.getType());
        ArrayList<String> LoreList=new ArrayList<>();
        LoreList.add(loreName);
        im.setLore(LoreList);
        tmp.setItemMeta(im);
    }
    public void setItemName(ItemStack tmp,String itemName){//设置一个Item的名字
        ItemMeta meta=tmp.hasItemMeta()?tmp.getItemMeta():Bukkit.getItemFactory().getItemMeta(tmp.getType());
        meta.setDisplayName(itemName);
        tmp.setItemMeta(meta);
    }
    public void CreateGUI(Inventory tmp){//设置创建交易的GUI
        //基础界面的设置
        ItemStack item_gl = new ItemStack(org.bukkit.Material.STAINED_GLASS_PANE,1);
        ItemStack item_bk = new ItemStack(org.bukkit.Material.DIAMOND);
        ItemStack item_gd = new ItemStack(org.bukkit.Material.GOLD_INGOT);
        setItemName(item_gl, ChatColor.GRAY+"分割线");
        setItemName(item_bk,ChatColor.BLUE+"空");
        setItemName(item_gd,ChatColor.GREEN+"确定");
        setItemLore(item_gl,"不可移动");
        setItemLore(item_bk,"不可移动");
        setItemLore(item_gd,"不可移动");
        tmp.setItem(0,item_bk); //交易上方是卖的东西，下方是想要获得的东西,如果上方缺省，那么就是求购，下方缺省，就是拍卖
        tmp.setItem(1,item_bk);
        tmp.setItem(2,item_bk);
        tmp.setItem(3,item_bk);
        tmp.setItem(4,item_bk);
        tmp.setItem(5,item_bk);
        tmp.setItem(6,item_bk);
        tmp.setItem(7,item_bk);
        tmp.setItem(8,item_bk);
        tmp.setItem(9,item_bk);
        tmp.setItem(17,item_bk);
        tmp.setItem(18,item_bk);
        tmp.setItem(26,item_bk);
        tmp.setItem(27,item_bk);
        tmp.setItem(35,item_bk);
        tmp.setItem(36,item_bk);
        tmp.setItem(37,item_bk);
        tmp.setItem(38,item_bk);
        tmp.setItem(39,item_bk);
        tmp.setItem(40,item_bk);
        tmp.setItem(41,item_bk);
        tmp.setItem(42,item_bk);
        tmp.setItem(43,item_bk);
        tmp.setItem(44,item_bk);
        tmp.setItem(19,item_gl);
        tmp.setItem(20,item_gl);
        tmp.setItem(21,item_gl);
        tmp.setItem(22,item_gd);
        tmp.setItem(23,item_gl);
        tmp.setItem(24,item_gl);
        tmp.setItem(25,item_gl);

        //收购商品的选择
        ItemStack item_choose=new ItemStack(org.bukkit.Material.ARROW);
        setItemName(item_choose,ChatColor.YELLOW+"选择购买商品");
        setItemLore(item_choose,"不可移动");
        tmp.setItem(28,item_choose);
        tmp.setItem(29,item_choose);
        tmp.setItem(30,item_choose);
        tmp.setItem(31,item_choose);
        tmp.setItem(32,item_choose);
        tmp.setItem(33,item_choose);
        tmp.setItem(34,item_choose);

    }
    public void InfoGUI(Inventory tmp){
        ItemStack item_gl = new ItemStack(org.bukkit.Material.STAINED_GLASS_PANE,1);
        ItemStack item_bk = new ItemStack(org.bukkit.Material.DIAMOND);
        ItemStack item_gd = new ItemStack(org.bukkit.Material.GOLD_INGOT);
        ItemStack item_cancel = new ItemStack(Material.BARRIER);
        setItemName(item_gl, ChatColor.GRAY+"分割线");
        setItemName(item_bk,ChatColor.BLUE+"空");
        setItemName(item_gd,ChatColor.GREEN+"确定");
        setItemName(item_cancel, ChatColor.RED+"删除交易");
        setItemLore(item_cancel,"不可移动");
        setItemLore(item_gl,"不可移动");
        setItemLore(item_bk,"不可移动");
        setItemLore(item_gd,"不可移动");
        tmp.setItem(0,item_bk);
        tmp.setItem(1,item_bk);
        tmp.setItem(2,item_bk);
        tmp.setItem(3,item_bk);
        tmp.setItem(4,item_bk);
        tmp.setItem(5,item_bk);
        tmp.setItem(6,item_bk);
        tmp.setItem(7,item_bk);
        tmp.setItem(8,item_bk);
        tmp.setItem(9,item_bk);
        tmp.setItem(17,item_bk);
        tmp.setItem(18,item_bk);
        tmp.setItem(26,item_bk);
        tmp.setItem(27,item_bk);
        tmp.setItem(35,item_bk);
        tmp.setItem(36,item_bk);
        tmp.setItem(37,item_bk);
        tmp.setItem(38,item_bk);
        tmp.setItem(39,item_bk);
        tmp.setItem(40,item_bk);
        tmp.setItem(41,item_bk);
        tmp.setItem(42,item_bk);
        tmp.setItem(43,item_bk);
        tmp.setItem(44,item_bk);
        tmp.setItem(45,item_bk);
        tmp.setItem(53,item_bk);
        tmp.setItem(19,item_gl);
        tmp.setItem(20,item_gl);
        tmp.setItem(21,item_gl);
        tmp.setItem(22,item_gd);
        tmp.setItem(23,item_gl);
        tmp.setItem(24,item_gl);
        tmp.setItem(25,item_gl);
    }
    public boolean contains(int[] a,int b){
        for(int i : a){
            if(i==b)return true;//数组a里是否含有b
        }
        return false;
    }
    public void ChooseGUI(Inventory tmp,int page){
        //total:385 things
        //there is a 6*9 blocks inventory
        //and 5*9 are items,that's 45
        //the last column, the row 1 is to last page, id 45
        //the last column, the row 9 is to next page, id 53
        //I need to use 9 pages to save all of the items
        // 47 51 is for page and cancel
        boolean over=false;
        System.out.println(EasyTrade.ALL_USABLE_ITEMS.size());
        for(int i=0;i<45;i++){

            if(i+45*(page-1)>=EasyTrade.ALL_USABLE_ITEMS.size()){
                over=true;
                break;
            }
            ItemStack item=EasyTrade.ALL_USABLE_ITEMS.get(i+45*(page-1));
            setItemLore(item,"不可移动");
            tmp.setItem(i,item);
        }
        ItemStack lastPage=new ItemStack(org.bukkit.Material.ARROW),nextPage=new ItemStack(org.bukkit.Material.ARROW);

        setItemName(lastPage,ChatColor.RED+"上一页");
        setItemLore(lastPage,"不可移动");
        setItemName(nextPage,ChatColor.GREEN+"下一页");
        setItemLore(nextPage,"不可移动");
        ItemStack currentPage=new ItemStack(Material.GOLD_INGOT),cancel=new ItemStack(Material.BARRIER);
        setItemName(currentPage,ChatColor.BLUE+String.valueOf(page));
        setItemName(cancel,ChatColor.RED+"取消");
        setItemLore(currentPage,"不可移动");
        setItemLore(cancel,"不可移动");
        tmp.setItem(47,currentPage);
        tmp.setItem(51,cancel);
        if(!(page==1)){

            tmp.setItem(45,lastPage);
        }
        if(!over){
            tmp.setItem(53,nextPage);
        }

    }
}
